package cn.tedu.mall.search.service.impl;

import cn.tedu.mall.common.restful.JsonPage;
import cn.tedu.mall.pojo.product.model.Spu;
import cn.tedu.mall.pojo.search.entity.SpuEntity;
import cn.tedu.mall.pojo.search.entity.SpuForElastic;
import cn.tedu.mall.product.service.front.IForFrontSpuService;
import cn.tedu.mall.search.repository.SpuForElasticRepository;
import cn.tedu.mall.search.service.ISearchService;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Slf4j
//@Service
@Deprecated
public class SearchServiceImpl{

//    @Autowired
//    private SpuForElasticRepository spuRepository;
//    @DubboReference
//    private IForFrontSpuService dubboSpuService;
//
//    /**
//     * 查询spu所有数据新增到ES中
//     */
//    @Override
//    public void loadSpuByPage() {
//        //循环完成分页所有查询
//        int i = 1;
//        int pages = 0;
//        do{
//            // dubbo调用查询当前页的spu数据
//            JsonPage<Spu> spus = dubboSpuService.getSpuByPage(i, 2);
//            // 需要将JsonPage类型中的数据转换为list<SpuForElastic>
//            List<SpuForElastic> esSpus = new ArrayList<>();
//            // 遍历spus集合 进行转换,新增到esSpus
//            for (Spu spu: spus.getList()) {
//                SpuForElastic esSpu = new SpuForElastic();
//                BeanUtils.copyProperties(spu,esSpu);
//                esSpus.add(esSpu);
//            }
//            spuRepository.saveAll(esSpus);
//            log.info("成功加载了第{}页数据",i);
//            // 总页数赋值
//            pages = spus.getTotalPage();
//            i++;
//        }while(i<=pages);
//    }
//
//    @Override
//    public JsonPage<SpuForElastic> search(String keyword, Integer page, Integer pageSize) {
//        Page<SpuForElastic> spus = spuRepository.querySearch(keyword, PageRequest.of(page-1,pageSize));
//        JsonPage<SpuForElastic> jsonPage = new JsonPage<>();
//        jsonPage.setPage(page);
//        jsonPage.setPageSize(pageSize);
//        jsonPage.setTotal(spus.getTotalElements());
//        jsonPage.setTotalPage(spus.getTotalPages());
//        jsonPage.setList(spus.getContent());
//        return jsonPage;
//    }




}
